// Organism.hpp

#ifndef _ORGANISM_HPP_
#define _ORGANISM_HPP_

#include <string>
 
class Organism
{

private:
	
  /**
   * Reproduction probability for this species each timestep.
   */
  double reproProb;

  /**
   * The maximum age for this organism
   */
  int maxAge;

  /**
   * This Organism's current age.
   */
  int age; 
 
  /**
   * The type of organism.
   */
  std::string name;

public:

  /**
   * Creates a new Organism of the given name, reproduction
   * probability and maximum age.
   */
  Organism(const std::string& n, double rProb, int max);

  /**
   * Copy an organism.
   */
  Organism(const Organism& org);

  /**
   * Advances this Organism through a timestep. Returns -1 if the organism 
   * died, 1 if the organism reproduced, zero otherwise.
   */
  int advance();

};

#endif
